package com.example.ivideo_2211a.utils

import android.content.Context
import android.content.Intent
import android.util.Log
import com.example.ivideo_2211a.broadcast.LivePreNotificationReceiver
import java.text.SimpleDateFormat
import java.util.*

/**
 * 直播广播工具类
 * 用于发送各种直播相关的广播消息
 */
object LiveBroadcastUtils {
    
    private const val TAG = "LiveBroadcastUtils"
    
    /**
     * 发送直播预播提醒广播
     * @param context 上下文
     * @param liveTitle 直播标题
     * @param delayMinutes 延迟分钟数（可选，默认立即发送）
     */
    fun sendLivePreNotification(
        context: Context, 
        liveTitle: String = "精彩直播",
        delayMinutes: Int = 0
    ) {
        try {
            // 使用显式Intent来确保广播能够被接收
            val intent = Intent(context, LivePreNotificationReceiver::class.java)
            intent.action = LivePreNotificationReceiver.ACTION_LIVE_PRE_NOTIFICATION
            
            // 计算直播时间
            val calendar = Calendar.getInstance()
            calendar.add(Calendar.MINUTE, delayMinutes)
            val timeFormat = SimpleDateFormat("HH:mm", Locale.getDefault())
            val liveTime = if (delayMinutes <= 0) {
                "现在"
            } else {
                timeFormat.format(calendar.time)
            }
            
            // 添加广播数据
            intent.putExtra(LivePreNotificationReceiver.EXTRA_LIVE_TITLE, liveTitle)
            intent.putExtra(LivePreNotificationReceiver.EXTRA_LIVE_TIME, liveTime)
            
            // 发送广播
            context.sendBroadcast(intent)
            
            Log.d(TAG, "已发送直播预播提醒广播: $liveTitle, 时间: $liveTime")
            
        } catch (e: Exception) {
            Log.e(TAG, "发送直播预播提醒广播失败", e)
        }
    }
    
    /**
     * 发送直播开始广播
     * @param context 上下文
     * @param liveTitle 直播标题
     */
    fun sendLiveStartNotification(context: Context, liveTitle: String = "直播") {
        sendLivePreNotification(context, liveTitle, 0)
    }
    
    /**
     * 发送直播预告广播（提前通知）
     * @param context 上下文
     * @param liveTitle 直播标题
     * @param advanceMinutes 提前通知的分钟数
     */
    fun sendLiveAdvanceNotification(
        context: Context, 
        liveTitle: String = "即将开始的直播",
        advanceMinutes: Int = 5
    ) {
        sendLivePreNotification(context, liveTitle, advanceMinutes)
    }
}